Massively Multi-user On line applications (MMOs) allow a large number of users to simultaneously use an application such as real-world phenomena simulator, immersive applications, and so on. Similarly, Massively Multi-user On line Games (MMOG) allow a large number of players to play simultaneous a video game. MMOs and MMOGs notably rely on computer networks, e.g. the Internet, for allowing the users or gamers to connect to the applications or video games.
MMOs and MMOGs involve a complex and large virtual environments which are desired to be rendered in as much detail as possible, in as close to real time as possible, in order to provide users or game players with a more realistic experience. MMOs are specifically designed for the representation and the manipulation of 3D scenes, and are typically utilized on the end-user's computer for applications that require interactive, sequential, real-time 3D scene generation. As the user interacts with the 3D scene, the computer redraws the 3D representation rapidly enough to convey to the user the sense of a continuous, ongoing reality in which the user is participating. The scene is composed of many separate objects that can be manipulated by user when interacting with the 3D scene. Thus, MMOs involve large data volumes, high data rates and high data complexity is generally required in order to manage large numbers of users participating in real time in a spatially complex and highly detailed virtual environment.
MMOs are typically used for simulating real-world phenomena within computer models; for instance Multi-Body Rigid Dynamics, Human Simulation, Cloth Simulation, Particle Simulation. Simulations require accurate data and algorithms that describe real-world phenomena, such as the physical properties (strength, elasticity, etc.) of the materials used in a manufacturing process and the product to create a simulation of the process and a simulation of a product in use. 3D CAD/CAM (Computer Aided Design, Computer Aided Manufacturing) tools allow to create 3D representations of the product or component parts.
The main and critical requirement of MMOs (and MMOGs) is to offer a real-time response at any time to the connected users (and players), regardless of their number, and regardless of the induced computation costs for solving and rendering of the application. Otherwise, the quality of play experience turns poor, decreasing users' (and players') interest for the application, limiting interaction when performing collaborative and distributed design review.
MMO's, just like MMOG's, must be scalable to dynamically adapt to the perpetually changing work-load, maintaining thus real-time performance. Scalability notably comprises the number of users that can simultaneously use the application, the number of computing resources for computing the simulations, the number of simultaneous interactions between objects of the 3D scene allowed by the application, and so on. For MMOG's, the number of players may vary significantly, as well as the positional and graphical attributes of all contained dynamic objects. Nevertheless, the surrounding scenery is set once for all and the typology of dynamic objects and the supported behavior classes are predefined, before the game starts. Said otherwise, 3D scenes in MMOGs comprise a number of predetermined characteristics that strongly limit the needs of computing resources; thus improving scalability.
Regarding advanced MMOs, the scenery and population typology of the 3D scene can evolve and enrich, especially while application is running Indeed, MMOs aim at real-world phenomena, wherein the behaviour of objects is dynamic and excludes predefined behavior classes. Consequently, 3D scenery in MMOs cannot use predefined characteristics as for MMOGs.
The issue of scalability is addressed by MMO and MMOG. Such solutions and techniques include Sharding and Zoning. Sharding consists in cloning the virtual world (partially or entirely) and host newly logged users to cope with the workload rise, but with no possible interaction between shards. So by nature, Sharding cannot support unlimited expansion of the virtual world space and population: shards have indeed a physical capacity ceiling dictated by the performance of their assigned processing resources.
Zoning relies on a partition of the virtual world space in so called zones, each of them under the responsibility of a computing resource. Objects/users can navigate from zone to zone. Associated computing resources communicate then dedicated messages on a network to integrate these moving objects in their computational models.
By its nature, Zoning can manage potentially unbounded augmentation of the virtual world as required in advanced MMO's. Hence, effective real-time simulation of the MMO can be achieve with an optimal load balancing of all the constituting Zones on the available processing resources.
Providing a communication middleware capable of supporting such MMOs and MMOGs applications is a real challenge from network communication perspective. Indeed, middleware applications make easier the development of multiplatform MMOs and MMOGs applications and the development of network communications between these applications. Having in mind scalabity concern, it is important to offer a communication middleware that supports various scalability strategies and optimizes network communications.
Existing communication middlewares offer several communication types (reliable, unreliable, multicast . . . ). However, none of the known communication middlewares is adapted for MMOs' and MMOGs' contexts. In particular, they do not offer communication type that allows providing a scalable and effective real-time simulation, e.g. of a 3D scene in real-world simulation applications.
Within this context, there is a need for a generic and flexible communication middleware dealing with MMO/MMOG scalability and offering support for unlimited expansion of the MMO/MMOG virtual world and population.